Option Explicit
'ۭqҲ
Private Sub UserForm_Initialize()
    'ոL_Data01
    Dim myAr As Variant
    'w}C
    myAr = Worksheets("L_Data01").Range("C2:D11").Value
    With ListBox1
        'wMݩ
        .Width = .Width * 3
        .ColumnCount = 2
        .List = myAr
        .SetFocus
    End With
End Sub

Private Sub ListBox1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, _
                                    ByVal Data As MSForms.DataObject, _
                                    ByVal X As Single, _
                                    ByVal Y As Single, _
                                    ByVal DragState As Long, _
                                    ByVal Effect As MSForms.ReturnEffect, _
                                    ByVal Shift As Integer)
    Cancel = True
    Effect = 1
End Sub

Private Sub ListBox1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, _
                                       ByVal Action As Long, _
                                       ByVal Data As MSForms.DataObject, _
                                       ByVal X As Single, _
                                       ByVal Y As Single, _
                                       ByVal Effect As MSForms.ReturnEffect, _
                                       ByVal Shift As Integer)
    Cancel = True
    Effect = 1
    ListBox1.AddItem Data.GetText, 0
    ListBox1.ListIndex = 0
End Sub

Private Sub ListBox1_MouseMove(ByVal Button As Integer, _
                               ByVal Shift As Integer, _
                               ByVal X As Single, _
                               ByVal Y As Single)
    Dim myDobj As DataObject
    Dim myEfct As Integer
    If ListBox1.ListIndex = -1 Then Exit Sub
    If Button = 1 Then
        Set myDobj = New DataObject
        myDobj.SetText ListBox1.Value
        myEfct = myDobj.StartDrag
    End If
End Sub

Private Sub TextBox1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, _
                                    ByVal Data As MSForms.DataObject, _
                                    ByVal X As Single, _
                                    ByVal Y As Single, _
                                    ByVal DragState As MSForms.fmDragState, _
                                    ByVal Effect As MSForms.ReturnEffect, _
                                    ByVal Shift As Integer)
    Cancel = True
    Effect = 1
End Sub

Private Sub TextBox1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, _
                                       ByVal Action As MSForms.fmAction, _
                                       ByVal Data As MSForms.DataObject, _
                                       ByVal X As Single, _
                                       ByVal Y As Single, _
                                       ByVal Effect As MSForms.ReturnEffect, _
                                       ByVal Shift As Integer)
    Cancel = True
    Effect = 1
    TextBox1.Value = Data.GetText
End Sub

Private Sub TextBox1_MouseMove(ByVal Button As Integer, _
                               ByVal Shift As Integer, _
                               ByVal X As Single, _
                               ByVal Y As Single)
    Dim myDobj As DataObject
    Dim Effect As Integer
    If Len(TextBox1.Value) = 0 Then Exit Sub
    If Button = 1 Then
        Set myDobj = New DataObject
        myDobj.SetText TextBox1.Value
        Effect = myDobj.StartDrag
    End If
End Sub
